ed8ede7b8a4a3dcb5ffe9d3b1e44f9809106a778,java/java-analysis-impl/src/com/intellij/codeInspection/dataFlow/ContractInference.java,ContractInferenceInterpreter,visitLogicalOperation,#PsiExpression[]#boolean#List#,322

Before Change


    for (PsiExpression operand : operands) {
      List<MethodContract> opResults = visitExpression(states, operand);
      finalStates.addAll(filterReturning(opResults, breakValue));
      states = antecedentsOf(filterReturning(opResults, negateConstraint(breakValue)));
    }
    finalStates.addAll(toContracts(states, negateConstraint(breakValue)));
    return finalStates;

After Change


    for (PsiExpression operand : operands) {
      List<MethodContract> opResults = visitExpression(states, operand);
      finalStates.addAll(ContainerUtil.filter(opResults, contract -> contract.returnValue == breakValue));
      states = antecedentsReturning(opResults, negateConstraint(breakValue));
    }
    finalStates.addAll(toContracts(states, negateConstraint(breakValue)));
    return finalStates;